package com.shujia.day02;

/*
    位运算符：针对数值2进制形式的计算
      & | ^ ~  >>  << >>>

    位运算符，参与运算的是数值，结果也是一个数值

 */
public class WeiDemo1 {
    public static void main(String[] args) {
        int a = 3;
        int b = 4;

//        System.out.println(a&b);
//        System.out.println(a|b);
//        System.out.println(a^b);
        System.out.println(~a);
    }
}
/*
    计算机中所有的运算都是采用补码进行的
    3的补码：00000000 00000000 00000000 00000011
    4的补码：00000000 00000000 00000000 00000100

    &：有0则0
        00000000 00000000 00000000 00000011
      &
        00000000 00000000 00000000 00000100
       -------------------------------------
        00000000 00000000 00000000 00000000

    |：有1则1
        00000000 00000000 00000000 00000011
      |
        00000000 00000000 00000000 00000100
       -------------------------------------
        00000000 00000000 00000000 00000111

    ^：相同则0，不同则1
        00000000 00000000 00000000 00000011
      ^
        00000000 00000000 00000000 00000100
       -------------------------------------
        00000000 00000000 00000000 00000111

    ~： 0变成1，1变成0
        00000000 00000000 00000000 00000011
      ~
        -------------------------------------
   补码  11111111 11111111 11111111 11111100
   反码  11111111 11111111 11111111 11111011
   原码  10000000 00000000 00000000 00000100
   -----------------------------------------
   -4

 */
